Fire TV Stickをhubotサーバ化してRM Mini3を操作する
https://gyazo.com/9e38f72cc019a24ee72c0ec116f90fe0 http://amzn.to/2r4E2Tg
パソコンもラズパイも不要
また、手元にない場合でも、Fire TV Stick なら単品でも役に立つうえ、Raspberry Pi のフルセットを揃えるよりも、安く済む。 パソコンも Raspberry Pi も持っていないなら、Fire TV Stick は、有力な hubot 動作環境の一つと思われる。
(ただし、Fire TV Stick へのインストール作業は少し難易度が高いので、より扱いやすいRaspberry Piの方が初心者向け。) (また、Fire TV Stickでも、castv2-client を使えば、Google Homeにテキストを喋らせることができる。は、Google Homeにテキストを喋らせることができない点が惜しい → 166氏による解説) 謝辞
以下の設定手順についても、939氏に目を通して頂いきました。感謝の意をここに表します。ありがとうございます。
準備
(リセットする前はサーバ化に失敗したが、リセットしたらサーバ化できたという報告がある。)
termuxのインストール
Google Play からアプリ termux をインストールすれば、下図のように、すぐにLinuxを使えるようになる。(脱獄なども不要) Fire TV Stick は、androidベースのOSが入った、android端末の亜種なので、android用のアプリ(の一部)が動作する。 https://gyazo.com/96db7f21b82104e6cca71c3afe8fa804
termuxでのキー入力
Bluetoothキーボードがなくても、 Fire TV Stick のリモコンでも操作できるかもしれないが、かなりの苦痛を伴う(ドラクエ2の復活の呪文より辛い)ことは明らか。素直にBluetoothキーボードを購入した方がよいだろう。(安いものなら千円しない。) (↑ スマホからはキー入力できなかったそうです。52氏 の報告のおかげで、他の方が同じ試行錯誤をせずに済みます。感謝!) スリープ防止
code:sh
$ termux-wake-lock
なお、ロックを解除するには、termux-wake-unlock コマンドを実行すればよい。
必要な前提知識
まったくの初心者(LinuxやMacでのコマンドライン操作が初めての方)でも設定できるように、このサイトでは、設定に必要なすべての作業を、ほぼ漏れなく、できる限り丁寧に説明している。
それでも、もしうまく設定できない場合は、ひとまずコーヒーでも飲んで、冷静になってから、設定をゆっくり、丁寧に再確認して頂きたい。設定ミスの原因は入力ミスがほとんどなので、設定でミスが生じても、慌てずに、このサイトの説明をじっくり読み直せば、入力ミス(記号の打ち忘れなど)に気づけるはず。
また、コマンドラインでの操作方法は、ネットの断片的な情報をつまみ読みするよりも、本で体系的に学んだ方が、圧倒的に学習効率がよい。Kindle版なら今すぐ読める。
node.jsのインストール
code:sh
$ apt update
$ apt upgrade
$ apt install nodejs
$ npm install npm n -g
redisの準備
code:sh
$ apt install redis
$ redis-server & # redisサーバを(とりあえず)バックグラウンドで実行
hubot の準備
code:sh
$ npm config set prefix ~/usr/local # npm install -g のインストール先を変更
$ npm install -g generator-hubot yo
雛形の生成
code:sh
$ mkdir homebot # ロボットの名前をとりあえず homebot とする(どんな名前でもOK)
$ cd homebot
$ ~/usr/local/bin/yo hubot
? Owner # メールアドレスなどを入力(デフォルトのままでOK)
? Description
bin/hubot を修正
実行ファイルbin/hubotの先頭行のshへのPATHを修正する。
なお、ファイルの編集には、nano というエディタを使う。(nanoの使い方はこちら → nano) code:sh
$ apt install nano # nanoをインストール
$ which sh
/data/data/com.termux/files/usr/bin/sh # この結果をコピーしてから、、、
$ nano bin/hubot
つまり、which shの結果が☆△◎の時は、1行目の#!/bin/shを、#!☆△◎に書き換えればOK。
hubotの動作確認
とりあえず hubot を起動してみると、以下のようなエラーが出てくる場合がある。
code:sh
$ bin/hubot
bin/hubot: 8: exec: node_modules/.bin/hubot: Permission denied
このエラーが出た場合は、Fire TV Stick を工場出荷時の設定にリセットしてから、あらためて設定をし直すと、うまくいくことがある。また、もし可能なら、termuxアプリにストレージの権限を設定するとうまくいくことがある。 他のエラーや警告の解消方法や、残りの作業内容は、「hubotの雛形の生成 」の「hubotの動作確認」以降とまったく同じ。 注意事項
ただし、停止前には必ず redis-cli shutdown を実行すること。
(redisを正常終了しないと、ストレージへの書き込みがまだ完了していない赤外線データが、消える恐れがある。)
また、termux を再起動した際には、redis-server &を実行して、redis を再起動させること。
termux における hubot や redis の起動の自動化は、Termux:Boot を参考にすれば、できるかもしれない(未確認)。 2018/1/16 Amazon.co.jpアソシエイト